using System.Threading.Tasks;
using DocumentCreationSystem.Models;

namespace DocumentCreationSystem.Services
{
    /// <summary>
    /// 分词器定位与复制服务：
    /// - 优先使用配置或模型同目录的 tokenizer
    /// - 若缺失，则尝试从用户提供的 RWKV Python 目录中搜索并复制到本地应用数据目录
    /// </summary>
    public interface ITokenizerLocatorService
    {
        /// <summary>
        /// 确保存在可用的 tokenizer 文件，必要时尝试自动查找并复制。
        /// </summary>
        /// <param name="config">RWKV 配置（用于读取/回写 LocalTokenizerPath）</param>
        /// <param name="modelPath">本地模型文件路径</param>
        /// <returns>可用的 tokenizer 文件路径，若未找到则返回 null</returns>
        Task<string?> EnsureTokenizerAsync(RWKVConfig config, string modelPath);
    }
}

